home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
gnu
/
libg_261.zip
/
libg_261
/
libg++
/
utils
/
gendepend
< prev
next >
Wrap
Text File
|
1992-06-17
|
2KB
|
58 lines
#!/bin/sh
# to use this script, cd to the utils source directory and sh
# gendepend.
gdep=`pwd`/g++dep.sh
cd ..
popdir=`pwd`
gxx_include=${popdir}/g\+\+-include
io_dir=${popdir}/iostream
src_dir=${popdir}/src
gxx_flags="-I. -I${gxx_include} -I${io_dir}"
for i in `find . -name depend -print` ; do
down=`dirname $i`
up=`echo $down | sed -e "s:/[-a-zA-Z0-9]*:/..:g" -e "s:^\./::"`
cd ${popdir}/${down}
echo "" > depend.tmp
${gdep} -f depend.tmp ${gxx_flags} *.[cC]*
# --- Generate depend rules ---
# The sed script below attempts to make the depend output portable by
# making the output use the same macros used elsewhere in the Makefile:
# - It replaces double // by a single /.
# - It replaces include files that match part of the GXX_INCLUDE_DIRS
# by names defined in terms of the macros used to define GXX_INCLUDE_DIRS.
# However, files in g++-include are ignored.
# - It removes any absolute include file names that remain.
# - then remove lines, which contain only `\'
#
# -e 's|$(srcdir)|$$(srcdir)|g'
# -e 's|: *\$$(srcdir)/\(.*\.[cC]*\)|: \1|'
sed < depend.tmp \
-e 's|//|/|g' \
-e "s|${io_dir}|\$(srcdir)/${up}/\$(IO_DIR)|g" \
-e "s| ${gxx_include}/[^ ]*[.]h||g" \
-e "s|${src_dir}|\$(srcdir)/${up}/src_dir|g" \
-e 's| /[^ ]*[.]h||g' \
-e '/^[ ]*\\$/d' -e 's/^[ ]*$//' \
| awk 'BEGIN { prev = "" } \
/^( )*$/ { if (prev ~ /\\$/) \
{ prev = substr(prev,1,length(prev)-1); next } \
} \
{ print prev; prev = $0 } \
END { if (prev !~ /^( )*$/) print prev }' \
> depend
rm -f depend.tmp
done
exit 0